package belleza.relativa

/**
 * Devuelve información sobre multiples usuarios del sitio, como parejas encontradas, etcétera
 */
class InfoPersonasService {

    /**
     * Devuelve una lista de personas al azar, hasta que este definida la funcionalidad de parejas
     */
    def parejasEncontradas() {
        Map<Persona,Persona> parejas = new HashMap<Persona,Persona>()
        List<Persona> personas = Persona.findAll();
        List<Persona> personasMatcheadas = new ArrayList<Persona>();
        for (Persona p : personas){
            if (personasMatcheadas.contains(p)) continue
            def pareja = null;
            def solicitudes = p.getSolicitudesRecibidas();
            for (Solicitud s :solicitudes){
                if (s.getAceptada()){
                    pareja = s.getSolicitante();
                    break
                }
            }
            if (pareja != null){
                parejas.put(p,pareja)
                personasMatcheadas.add(p)
                personasMatcheadas.add(pareja)
            }

        }

        return parejas.isEmpty() ? null : parejas;
    }
}
